package com.ecommerce.user.dto;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;
import java.util.Set;

/**
 * 用户响应DTO
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserResponse {

    /**
     * 用户ID
     */
    private Long id;
    
    /**
     * 用户ID（别名，确保兼容性）
     */
    private Long userId;

    /**
     * 用户名
     */
    private String username;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 手机号
     */
    private String phone;
    
    /**
     * 手机号（别名，确保兼容性）
     */
    private String phoneNumber;

    private String address;

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    /**
     * 头像URL
     */
    private String avatar;
    
    /**
     * 头像URL（别名，确保兼容性）
     */
    private String avatarUrl;

    /**
     * 昵称
     */
    private String nickname;
    
    /**
     * 昵称（别名，确保兼容性）
     */
    private String nickName;

    /**
     * 用户角色
     */
    private Set<String> roles;

    /**
     * 创建时间
     */
    private LocalDateTime createdAt;

    /**
     * 更新时间
     */
    private LocalDateTime updatedAt;
    
    /**
     * 设置昵称别名
     * @param nickName 昵称别名
     */
    public void setNickName(String nickName) {
        this.nickName = nickName;
    }
    
    /**
     * 设置用户ID别名
     * @param userId 用户ID别名
     */
    public void setUserId(Long userId) {
        this.userId = userId;
    }
    
    /**
     * 设置手机号别名
     * @param phoneNumber 手机号别名
     */
    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }
    
    /**
     * 设置头像URL别名
     * @param avatarUrl 头像URL别名
     */
    public void setAvatarUrl(String avatarUrl) {
        this.avatarUrl = avatarUrl;
    }
    
    /**
     * 设置昵称
     * @param nickname 昵称
     */
    public void setNickname(String nickname) {
        this.nickname = nickname;
    }
}